package com.example.server.web.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;

import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * <p>
 *  学生问卷记录对象
 * </p>
 *
 * @author 作者
 * @since 2023-04-26
 */
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
@TableName("student_questionnaire")
@ApiModel(value = "学生问卷记录对象", description = "")
public class StudentQuestionnaire implements Serializable {

    /**
     * 学生问卷记录id
     */
    @TableId(value = "id", type = IdType.AUTO)
    @ApiModelProperty(value = "学生问卷记录id")
    @NotNull(message = "学生问卷记录id不能为空")
    private Long id;

    /**
     * 问卷id
     */
    @ApiModelProperty(value = "问卷id")
    @NotNull(message = "问卷id不能为空")
    private Long questionnaireId;

    /**
     * 班级id
     */
    @ApiModelProperty(value = "班级id")
    @NotNull(message = "班级id不能为空")
    private Long classId;

    /**
     * 用户id
     */
    @ApiModelProperty(value = "用户id")
    @NotNull(message = "用户id不能为空")
    private Long userId;

    /**
     * 是否完成（1代表已完成，0代表未完成）
     */
    @ApiModelProperty(value = "是否完成（1代表已完成，0代表未完成）")
    private Integer status;

    /**
     * 学生问卷创建时间
     */
    @ApiModelProperty(value = "学生问卷创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createByTime;

    /**
     * 教学态度问题一
     */
    @ApiModelProperty(value = "教学态度问题一")
    @NotNull(message = "教学态度问题不能为空")
    private BigDecimal teaAttitudeOne;

    /**
     * 教学态度问题二
     */
    @ApiModelProperty(value = "教学态度问题二")
    @NotNull(message = "教学态度问题不能为空")
    private BigDecimal teaAttitudeTwo;

    /**
     * 教学方法问题一
     */
    @ApiModelProperty(value = "教学方法问题一")
    @NotNull(message = "教学态度方法不能为空")
    private BigDecimal teaMethodOne;

    /**
     * 教学方法问题二
     */
    @ApiModelProperty(value = "教学方法问题二")
    @NotNull(message = "教学态度方法不能为空")
    private BigDecimal teaMethodTwo;

    /**
     * 教学内容问题一
     */
    @ApiModelProperty(value = "教学内容问题一")
    @NotNull(message = "教学态度内容不能为空")
    private BigDecimal teaContentOne;

    /**
     * 教学内容问题二
     */
    @ApiModelProperty(value = "教学内容问题二")
    @NotNull(message = "教学态度内容不能为空")
    private BigDecimal teaContentTwo;

    /**
     * 教学内容问题三
     */
    @ApiModelProperty(value = "教学内容问题三")
    @NotNull(message = "教学态度内容不能为空")
    private BigDecimal teaContentThree;

    /**
     * 教学效果问题一
     */
    @ApiModelProperty(value = "教学效果问题一")
    @NotNull(message = "教学效果问题不能为空")
    private BigDecimal teaEffectOne;

    /**
     * 教学建议
     */
    @ApiModelProperty(value = "教学建议")
    private String teaSuggest;

    @Override
    public String toString() {
        return "StudentQuestionnaire{" +
                "id=" + id +
                ", questionnaireId=" + questionnaireId +
                ", classId=" + classId +
                ", userId=" + userId +
                ", status=" + status +
                ", createByTime=" + createByTime +
                ", teaAttitudeOne=" + teaAttitudeOne +
                ", teaAttitudeTwo=" + teaAttitudeTwo +
                ", teaMethodOne=" + teaMethodOne +
                ", teaMethodTwo=" + teaMethodTwo +
                ", teaContentOne=" + teaContentOne +
                ", teaContentTwo=" + teaContentTwo +
                ", teaContentThree=" + teaContentThree +
                ", teaSuggest=" + teaSuggest +
                "}";
    }


}
